list.js 771 B

12345678910111213141516171819202122232425262728293031
  1. let addressPromise = [];
  2. /** 获取一个地址选择Promise */
  3. export const getAddressPromise = () => {
  4. let resolver;
  5. let rejecter;
  6. const nextPromise = new Promise((resolve, reject) => {
  7. resolver = resolve;
  8. rejecter = reject;
  9. });
  10. addressPromise.push({ resolver, rejecter });
  11. return nextPromise;
  12. };
  13. /** 用户选择了一个地址 */
  14. export const resolveAddress = (address) => {
  15. const allAddress = [...addressPromise];
  16. addressPromise = [];
  17. allAddress.forEach(({ resolver }) => resolver(address));
  18. };
  19. /** 用户没有选择任何地址只是返回上一页了 */
  20. export const rejectAddress = () => {
  21. const allAddress = [...addressPromise];
  22. addressPromise = [];
  23. allAddress.forEach(({ rejecter }) => rejecter(new Error('cancel')));
  24. };