javascript - Typescript - 更新箭头函数中的变量

标签 javascript typescript

我有一个这样的函数:

private data: MyCustomDataObject;
private getData(): boolean {
    let val: boolean = true;   // variable declared
    this.service.callMethod().subscribe(data => {
        this.data = data;
        if (data == null) {
            val = false;   // val declared above is not updating
        } 
    });
return val; // this is still true, should be false
}

为什么 val 没有更新?

最佳答案

这里发生的事情是 subscribe 获取您提供的函数,并在稍后发生某些事件时保留它。当你传递它时,它实际上并没有运行你的函数。因此,getData 函数会继续执行,而不会调用您的回调,因此 val 的值在 getData 返回之前永远不会改变。如果您希望它返回 false,则需要在传递给 subscribe 的回调之外更改 val

关于javascript - Typescript - 更新箭头函数中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727883/

相关文章:

javascript - 返回具有未知键的对象数组的 typescript

asp.net-web-api - 为 Angular 2 身份验证启用 WebAPI CORS

javascript - 红盒替代品?

javascript - 如何使用 JavaScript 删除 html 标签只保留 BR、B 和 I 标签?

javascript - 当在 typescript 中拆分为多个文件时,我无法让模块内部的模块工作

typescript - 为什么在 typescript 声明空间中重新声明变量不是错误?

typescript - 如何在接口(interface)上扩展属性

javascript - 如何避免向 Firebase 的 'Miscellaneous' channel 发送通知?

javascript - 是否可以使用 javascript 通过 POST 多次发送一个变量?

javascript - 设计一个从后端访问 JSON feed 的系统