扑如何重跑未来?

时间:2019-05-22 04:28:23

标签: dart flutter future

是否有可能使未来像重新运行的任务一样?例如,如果我必须使用Future进行网络呼叫,但由于身份验证原因而失败。身份验证成功后,我想重新运行网络呼叫将来。我怎样才能做到这一点?

我期望的代码可能与此类似

    //avoid handling events this way; attach an event handler instead unless you specifically EE's to override the base onload 
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        Task.Run(Proceso).Wait();
        this.Close();
    }

1 个答案:

答案 0 :(得分:1)

简单的答案:您无法重新运行Future。

未来只能完成一次。此外,Future表示异步计算的 result 。我是这样想的:您运行一个 task 返回一个令牌(将来)。任务完成时,它将在Future上设置值。

最重要的是,Future只能设置一次其值,不能用2个不同的值来完成(即使由其表示结果的任务也是如此)。一旦设置了一个值,它将始终保存相同的值,并且不允许修改。

根据您的情况,您需要再次致电 import { mapGetters } from 'vuex' export default { // ... computed: { // mix the getters into computed with object spread operator ...mapGetters([ 'doneTodosCount', 'anotherGetter', // ... ]) } } If you want to map a getter to a different name, use an object: ...mapGetters({ // map `this.doneCount` to `this.$store.getters.doneTodosCount` doneCount: 'doneTodosCount' })

如果您有一个可能返回多个值的函数,则可以使用fetchData,但是这种方法不适合您的问题。