gpt4 book ai didi

javascript - 将异步函数的结果分配给同步函数中的变量

转载 作者:行者123 更新时间:2023-12-02 20:49:51 24 4
gpt4 key购买 nike

我有一个异步函数:

async function GetCounterFromSharepoint() {
let counter = await getSharepointListItems('mylist');

console.log('Got counter from sharepoint as ' + (await counter[0].CurrentValue));

return counter[0].CurrentValue;
}

该函数按预期工作,console.log 语句打印 Got counter from sharepoint as 1500'

我正在尝试从以下函数调用该函数

function GetData(){

let initialValue = GetCounterFromSharepoint()
console.log('Value from SP is ' + initialValue);

/* some other lines*/

}

第二个函数中的 console.log 语句输出 Value from SP is [object Promise]而不是 1500这是我所期望的。

第二个 console.log 语句也会在异步函数中的语句之前打印。所以我想如果我在它之前添加一个延迟,它会给它时间来解决。所以我首先尝试:

使用 wait函数来自developers.google.com

function wait(ms) {
return new Promise((r) => setTimeout(r, ms));
}

let initialValue = GetCounterFromSharepoint()
wait(2000) < -- /*added this */
console.log('Value from SP is ' + initialValue);

这没有效果。所以我尝试使用 Promise.resolve如下:

使用 Promise.resolve

console.log('Value from SP is ' + Promise.resolve(initialValue));

这给出了与 Value from SP is [object Promise] 相同的输出

使用等待

let initialValue = await GetCounterFromSharepoint()

这出现了错误:使用保留关键字“await”

请问我需要做什么才能使其正常工作?

最佳答案

使 GetData 异步

async function GetData() {
let initialValue = await GetCounterFromSharepoint()
console.log('Value from SP is ' + initialValue);
}

关于javascript - 将异步函数的结果分配给同步函数中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61634533/

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