异步和同步获取数据

发布于 2022-09-11 16:00:29 字数 777 浏览 35 评论 0

我想问一下有没有什么写法能够将异步变为同步,类似jquery中的ajax;类似这种

function getData(){
    var dataList;
    $.ajax({
        async:false,
        ....
        success:function(data){
            dataList = data
        }
    })
    return dataList
}
var data = getData()

然后我自己因为是ws通信,也是异步,所以我也想问下有什么办法能够像ajax这样直接return 等于
下面是我的代码

XDC.prototype.GetTGrpList = function (){
    return new Promise(function(resolve, reject){
        //做一些异步操作
        that.sendCallback(tGrpReq, 'tGrpReq', function(data){
            resolve(data)
        });
}
//获取数据
xdc.GetTGrpList().then(data => {
    //获取数据
})

我尝试用了promise、async、generator都只能这种链式获取数据,而不是直接等于获取数据,不知道有没有大神能够帮忙解答一下。万分感谢!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛泛之交 2022-09-18 16:00:29

我尝试用了promise、async、generator都只能这种链式获取数据

async/await 不用链式获取吧

XDC.prototype.GetTGrpList = async function (){
        return that.sendCallback(tGrpReq, 'tGrpReq', function(data){
            return data;
        });
}
//获取数据
let response = await xdc.GetTGrpList();
// 用response做你想要的操作。
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文