{ new Promise(r=>r("x"),j=>j("rejecte-6ren">
gpt4 book ai didi

javascript - js : str. 用 Promise 替换()

转载 作者:行者123 更新时间:2023-11-28 10:37:02 24 4
gpt4 key购买 nike

我想异步替换字符串的一部分

var str = "abc"
var str2 = str.replace(/a/g,m=>{
new Promise(r=>r("x"),j=>j("rejected"))
.then(result=>result)

})

console.log(str2)

我尝试使用异步/等待:

var str = "abc"
var str2 = str.replace(/a/g, async(m)=>{
return await new Promise(r=>r("x"),j=>j("rejected"))
.then(result=>result)

})

console.log(str2) //[object Promise]bc

最佳答案

.replace 回调中,您可以根据匹配的子字符串构造一个 Promise 数组,然后忽略 .replace 的返回值>。从 Promises 数组中,调用 Promise.all 来获取替换数组。然后,使用相同的模式再次调用 .replace ,并使用 Replacer 函数将每个匹配的子字符串替换为替换数组中的顶部项目:

// Replace the below function with the code required for your actual API call
const getReplacement = str => Promise.resolve(`[${str}]`);

const promises = [];
var str = "abcabcb"
str.replace(/[ab]/g, m => {
promises.push(getReplacement(m));
});
Promise.all(promises)
.then((results) => {
const output = str.replace(/[ab]/g, () => results.shift());
console.log(output);
})
.catch((err) => {
// handle errors
});

关于javascript - js : str. 用 Promise 替换(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59962305/

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