gpt4 book ai didi

javascript - 在 Node JS 中使用 Promises 创建字符串

转载 作者:搜寻专家 更新时间:2023-10-31 23:46:04 24 4
gpt4 key购买 nike

我对 Node JS 中的 promises 有疑问。我需要用来自两个 promise 的一些数据制作一个 JSON 字符串,但它不正确。这是我的代码:

var aux = "{";

geocoder.reverse(initPointReversing)
.then(function(initData) {
aux += "originAddress:'" + initData[0].formattedAddress + "',";
})
.catch(function(err) {
console.log(err);
});

geocoder.reverse(endPointReversing)
.then(function(endData) {
aux += "destinationAddress:'" + endData[0].formattedAddress + "',";
})
.catch(function(err2) {
console.log(err2);
});

aux += "}";

在 promise 中。字符串有值,但在外部,结果只是 "{}"

我需要如何正确使用这些 promise ?

最佳答案

最简单的方法是使用 Promise.all

var p1 = geocoder.reverse(initPointReversing)
.then(function(initData) {
return initData[0].formattedAddress;
});

var p2 = geocoder.reverse(endPointReversing)
.then(function(endData) {
return endData[0].formattedAddress;
});

Promise.all([p1, p2]).then(function(results) {
var t = {originAddress: results[0], destinationAddress: results[1]};
var aux = JSON.stringify(t);
})
.catch(function(err) {
console.log(err);
});

如果您使用的是最新 Node ,

var p1 = geocoder.reverse(initPointReversing).then(initData => initData[0].formattedAddress);
var p2 = geocoder.reverse(endPointReversing).then(endData => endData[0].formattedAddress);

Promise.all([p1, p2]).then(([originAddress, destinationAddress]) => {}
var aux = JSON.stringify({originAddress, destinationAddress});
// do things
})
.catch(function(err) {
console.log(err);
});

关于javascript - 在 Node JS 中使用 Promises 创建字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42478481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com