2.0.1 • Published 10 years ago

knockout-promise-extender v2.0.1

Weekly downloads
9
License
MIT
Repository
github
Last release
10 years ago

Knockout promise extender Build Status

Knockout extender for handling promises.

Installation

npm install knockout-promise-extender

Adding to knockout

var ko = require('knockout');
var promiseExtenderFactory = require('knockout-promise-extender');
ko.extenders.promise = promiseExtenderFactory(ko);

Usage

var x = ko.observable().extend({promise: true});

console.log(
    x, // observable
    x() // PromiseState
);

console.log(
    x().pending, // true
    x().resolved, // false
    x().rejected, // false
    x().value // undefined
);

x(Promise.resolve('some value'));

console.log(
    x().pending, // true, because Promise.resolve is async
    x().resolved, // false
    x().rejected, // false
    x().value // undefined
);

setTimeout(function () {
    console.log(
        x().pending, // false
        x().resolved, // true
        x().rejected, // false
        x().value // "some value"
    );
}, 0);

Usage in bindings

<div class="promised-model-view">
    <!-- ko if: x().pending -->
        <span class="wait-message">
            Loading data...
        </span>
    <!-- /ko -->

    <!-- ko if: x().resolved -->
        <span class="data" data-bind="text: x().value"></span>
    <!-- /ko -->

    <!-- ko if: x().rejected -->
        <span class="error-message">
            Something went wrong. Error is
            <span data-bind="text: x().value"></span>
        </span>
    <!-- /ko -->
</div>
2.0.1

10 years ago

2.0.0

10 years ago

1.0.10

10 years ago

1.0.9

10 years ago

1.0.8

10 years ago

1.0.7

10 years ago

1.0.5

10 years ago

1.0.4

10 years ago

1.0.3

10 years ago

1.0.0

10 years ago