在时用react时, 常常会出现在创建一个对象后, 对象还没有创建完成就被使用的异步问题, 介于这种问题, 一种解决方法就是使用Promise, 将需要被等待的那一步放到Promise中, Promise会强制等这步执行完才会进行下一步, 例如
1 new Promise((resolve, reject) => {
2 const amaps = AMap.service(['AMap.PlaceSearch'], () => {
3 placeSearch = new AMap.PlaceSearch({ // 构造地点查询类
4 pageSize: roadSize,
5 pageIndex: roadPage,
6 city: '0571',
7 map: gdMap,
8 });
9 });
10 resolve(amaps);
11 }).catch((error) => {
12 reject(error);
13 }).then((json) => {
14 console.log(json, placeSearch);
15 });
16 placeSearch.search(param, (status, result) => {
17 if (roadData.length > 0) {
18 for (let i = 0; i < 10; i += 1) {
19 ......
20 }
21 });
22 }
以上代码, 在Promise中, 只有等里面所有的对象都被创建完成了, 才会继续往下执行, 以达到同步的效果 |