在时用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中, 只有等里面所有的对象都被创建完成了, 才会继续往下执行, 以达到同步的效果