如何把一个Promise对象转换成一个 async/await对象
发布于 8 年前 作者 yuexing0921 7680 次浏览 来自 问答

有个一个现有的API,是一个HTTP请求 代码如下

getData(data)=>{
		return new Promise((resolve, reject)=>{
			request
				.post(url)
				.send(data)
				.end((err, res)=>{
					if(err){
						logger.error(err);
						return reject(err);
					}
					let dataJson = JSON.parse(res.text);
					return reject(dataJson);
				});
		});
	}

有没有办法把里面的代码转换成一个async/await对象

6 回复

找到原因了,最后一行代码应该写成 return resolve(dataJson);,这样我就可以通过await对象进行接受了

await可以直接接promise,所以你不需要转的

恩,确实是!但是用reject不知道为什么,我用await接受,无法接受,用resolve就可以

@yuexing0921 reject promise 要使用 try … catch 来捕获

既然是Promise, 直接 await 就好了, 类似于 await request.postAsync(‘url’, {json: params});

@DevinXian 原来如此!THX

回到顶部